package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.PO.WechatCheckAccountOrderDiffPO;
import com.itlong.cloud.POJO.VO.operate.OperateCheckAccountGetPageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 * 运营-财务展示对账数据库访问接口.
 * </desc>
 *
 * @createDate 2018/9/19
 */
@Mapper
@Repository
public interface ICheckAccountDao {

    /**
     * <desc>
     *      根据条件分页查询自动出账的出入列表信息
     * <desc/>
     * @param   params 查询条件
     * @return page
     * @author Juguang.S
     * @createDate 2018/9/19
     */
    List<OperateCheckAccountGetPageVO> getCheckDiffInfoByPage(Map<String, Object> params);

    /**
     * <desc>
     *      根据条件查询导出EXCEL信息
     * <desc/>
     * @param   params 查询条件
     * @return page
     * @author Juguang.S
     * @createDate 2018/9/19
     */
    List<OperateCheckAccountGetPageVO> getCheckDiffInfoForExport(Map<String, Object> params);

    /**
     * <desc>
     *      根据条件分页查询自动出账的出入信息总记录数
     * <desc/>
     * @param   params 查询条件
     * @return page
     * @author Juguang.S
     * @createDate 2018/9/19
     */
    Integer getCheckDiffInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *      根据ID查询其备注和订单状态
     * <desc/>
     *
     * @param orderDiffId
     * @return
     * @author Juguang.S
     * @createDate 2018-09-19
     */
    Map<String,Object> getCheckInfo(@Param("orderDiffId") String orderDiffId);

    /**
     * <desc>
     *      根据ID修改其备注和订单状态
     * <desc/>
     *
     * @param orderDiffId id
     * @param remark 备注
     * @param diffOrderStatus 订单状态
     * @return
     * @author Juguang.S
     * @createDate 2018-09-19
     */
    void updateStatus(@Param("orderDiffId") String orderDiffId,
                      @Param("diffOrderStatus") String diffOrderStatus,
                      @Param("remark") String remark,
                      @Param("myUserName") String myUserName);
}
